#include "config.h"
#include "gtkviewport.h"
+#include "gtkextendedlayout.h"
#include "gtkintl.h"
#include "gtkmarshalers.h"
#include "gtkprivate.h"
if (bin->child && gtk_widget_get_visible (bin->child))
{
- GtkRequisition child_requisition;
-
- gtk_widget_get_child_requisition (bin->child, &child_requisition);
- vadjustment->upper = MAX (child_requisition.height, view_allocation.height);
+ if (GTK_IS_EXTENDED_LAYOUT (bin->child))
+ {
+ gint natural_height;
+
+ gtk_extended_layout_get_height_for_width (GTK_EXTENDED_LAYOUT (bin->child),
+ view_allocation.width,
+ NULL,
+ &natural_height);
+ vadjustment->upper = MAX (natural_height, view_allocation.height);
+ }
+ else
+ {
+ GtkRequisition child_requisition;
+
+ gtk_widget_get_child_requisition (bin->child, &child_requisition);
+ vadjustment->upper = MAX (child_requisition.height, view_allocation.height);
+ }
}
else
vadjustment->upper = view_allocation.height;